import { Application } from 'egg';

export default (app: Application) => {
    const { STRING, CHAR, INTEGER } = app.Sequelize;
    const model = app.model.define('user', {
        user_id: {
            type: CHAR(32),
            primaryKey: true,
        },//主键id
        user_token: CHAR(32),//token
        clound_token: STRING(260),//融云token
        user_openId: STRING(50),//openid
        user_nickname: STRING(32),//昵称
        user_avatarUrl: STRING(50),//用户头像
        user_phone: STRING(15),//手机号码
        user_sex: CHAR(1),//性别
        user_school_id: STRING(50),//学校id
        user_college_id: STRING(50),//学院id
        user_school_year: STRING(11),//学年
        user_student_id: STRING(32),//学号
        user_school_Card: STRING(50),//校卡图片
        user_signature: STRING(1000),//签名
        user_finish: INTEGER(11),//画像完成度
        user_praise: INTEGER(11),//点赞数
        user_search_num: { type: INTEGER(11), defaultValue: 0 },//可用搜索次数
        user_sound_url: { type: STRING(40), defaultValue: '' },//录音url
        user_sound_status: { type: CHAR(1), defaultValue: '1' },//录音屏蔽状态（1：待审核，2：正常，3：屏蔽）
        user_status: CHAR(1),//用户状态（1：封号，2：禁言，3：正常）
        is_online: CHAR(1),//是否在线（1：是，2：否）
        is_news: CHAR(1),//是否有新消息（1：有，2：没有）
        is_new: CHAR(1),//是否是新用户（1：是，2：否）
        user_auditing_status: INTEGER(1),//用户审核状态（1：待审核，2，已通过，3：已禁止）
        is_delete: CHAR(1),
    }, { tableName: 't_user' });
    return model;
};

export class User {
    user_id: string;
    user_token: string;
    clound_token: string;
    user_openId: string;
    user_nickname: string;
    user_avatarUrl: string;
    user_phone: string;
    user_sex: string;
    user_school_id: string;
    user_college_id: string;
    user_school_year: string;
    user_student_id: string;
    user_school_Card: string;
    user_finish: string;
    user_praise: number;
    user_search_num: number;
    user_sound_url: string;
    user_sound_status: string;
    user_status: string;
    is_online: string;
    is_news: string;
    is_new: string;
    user_auditing_status: number;
    is_delete: string;
}
